package cohesion.system.trigger
{
	import flash.utils.Dictionary;

	/**
	 * <dl>
	 *
	 * 	<dt>文件描述:</dt>
	 *		<dd>帧事件触发器管理</dd>
	 *
	 *	<dt>创建日期:</dt>
	 *		<dd>2012-2-21</dd>
	 *
	 * 	<dt>更新日期:</dt>
	 *		<dd>2012-2-21</dd>
	 *
	 * 	<dt>文件版本:</dt>
	 *		<dd>1.0</dd>
	 *
	 * </dl>
	 *
	 * @author ZQiang张强
	 */
	public class Trigger
	{
		private static const dic:Dictionary = new Dictionary();

		/**
		 * 通过id获取一个帧事件触发器实例对象
		 * @param id			帧事件触发器类型id
		 * @param useFrame		是否使用ENTER_FRAME作为触发器
		 * @return 				触发器实例
		 * 
		 */
		public static function getInstance(id:String = "default",useFrame:Boolean = false):TriggerTimer
		{
			if (dic[id] == null)
			{
				dic[id] = new TriggerTimer(useFrame);
			}
			return dic[id];
		}

		/**
		 * 释放指定类型的触发器 
		 * @param id	类型id
		 * 
		 */
		public static function freeInstance(id:String = "default"):void
		{
			dic[id].release();
			delete dic[id];
		}
	}
}